日期調整元件(QDateEdit) 和 時間調整(QTimeEdit)元件
1. QDateEdit 使用
QDateEdit 添加
from PySide6.QtWidgets import QApplication , QMainWindow , QDateEdit
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
Date = QDateEdit()
self.setCentralWidget(Date)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QDateEdit 常用的信號
-
dateChanged.connect(function)
: 當日期改變時,觸發信號。下面範例是改變日期時,使用date()
取得當前設置的日期,將日期顯示在標籤上。
from PySide6.QtWidgets import QApplication , QWidget , QDateEdit , QLabel , QHBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
# 新增元件
Date = QDateEdit()
label = QLabel("時間")
#信號
Date.dateChanged.connect(lambda: label.setText(Date.date().toString()))
#設定布局
layout = QHBoxLayout()
layout.addWidget(Date)
layout.addWidget(label)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QDateEdit 常用的功能
-
setDisplayFormat(format)
: 改變日期元件的樣式,可以使用不同的格式來顯示。例如,yyyy 代表年份,MM 代表月份,若要顯示月份的縮寫,可以使用 MMM,dd 代表日期。如果還要顯示星期,可以使用 ddd(簡寫)或 dddd(完整顯示),在設定時要注意字母大小寫是固定的。下面範例示範了三種不同的表示方法。
from PySide6.QtWidgets import QApplication , QWidget , QDateEdit , QLabel , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
# 新增元件
Date1 = QDateEdit()
Date1.setDisplayFormat("dd/MM/yyyy")
Date2 = QDateEdit()
Date2.setDisplayFormat("yyyy/MM/dd")
#新增星期
Date3 = QDateEdit()
Date3.setDisplayFormat("yyyy/MM/dd/dddd")
#設定布局
layout = QVBoxLayout()
layout.addWidget(Date1)
layout.addWidget(Date2)
layout.addWidget(Date3)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setDate(QDate)
: 設定日期,要配合QDate使用。下面範例是設定成2003/10/30。
from PySide6.QtWidgets import QApplication , QMainWindow , QDateEdit
from PySide6.QtCore import QDate
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
Date = QDateEdit()
Date.setDisplayFormat("yyyy/MM/dd")
Date.setDate(QDate(2003,10,30))
self.setCentralWidget(Date)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setMinimumDate(QDate)
和 setMaximumDate(QDate)
: 分別是設定日期下限,和上限的方法,在設定時需要配合使用QDate。下面範例是將範圍設在2003年。
from PySide6.QtWidgets import QApplication , QMainWindow , QDateEdit
from PySide6.QtCore import QDate
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
Date = QDateEdit()
Date.setDisplayFormat("yyyy/MM/dd")
Date.setMaximumDate(QDate(2003,12,31))
Date.setMinimumDate(QDate(2003,1,1))
self.setCentralWidget(Date)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setDateRange(start,end)
: 設置日期範圍,在設定時需要配合使用QDate。下面範例是將範圍設在2003年。
from PySide6.QtWidgets import QApplication , QMainWindow , QDateEdit
from PySide6.QtCore import QDate
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
Date = QDateEdit()
Date.setDisplayFormat("yyyy/MM/dd")
Date.setDateRange(QDate(2003,1,1),QDate(2003,12,31))
self.setCentralWidget(Date)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
2. QTimeEdit 使用
QTimeEdit 添加
from PySide6.QtWidgets import QApplication , QMainWindow , QTimeEdit
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
time = QTimeEdit()
self.setCentralWidget(time)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QTimeEdit 常用的信號
-
timeChanged.connect(function)
: 當前時間改變時,觸發信號。下面範例是改變日期時,使用time()
取得當前設置的日期,將時間顯示在標籤上。
from PySide6.QtWidgets import QApplication , QWidget , QTimeEdit , QLabel , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
Time = QTimeEdit()
label = QLabel("時間")
Time.timeChanged.connect(lambda : label.setText(Time.time().toString()))
layout = QVBoxLayout()
layout.addWidget(Time)
layout.addWidget(label)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QTimeEdit 常用的功能
-
setDisplayFormat()
: 設定時間的樣式時,hh 代表小時,mm 代表分鐘,ss 代表秒,ap 代表上下午(AM/PM)。下面範例使用了三種不同的樣式。
from PySide6.QtWidgets import QApplication , QWidget , QTimeEdit , QLabel , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100,100,500,500)
Time1 = QTimeEdit()
Time1.setDisplayFormat("hh/mm/ss")
Time2 = QTimeEdit()
Time2.setDisplayFormat("hh:mm:ss")
Time3 = QTimeEdit()
Time3.setDisplayFormat("ap hh:mm:ss")
layout = QVBoxLayout()
layout.addWidget(Time1)
layout.addWidget(Time2)
layout.addWidget(Time3)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setTime(QTime)
: 設定時間,要使用時需要配合QTime()。下面範例是將時間設定成20:10:10。
from PySide6.QtWidgets import QApplication , QMainWindow , QTimeEdit
from PySide6.QtCore import QTime
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
time = QTimeEdit()
time.setDisplayFormat("hh:mm:ss")
time.setTime(QTime(20,10,10))
self.setCentralWidget(time)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setMinimumDate(QDate)
和 setMaximumDate(QDate)
: 分別是設定時間下限,和上限的方法,在設定時需要配合使用QTate。範例是將時間設置在1小時內。
from PySide6.QtWidgets import QApplication , QMainWindow , QTimeEdit
from PySide6.QtCore import QTime
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
time = QTimeEdit()
self.setCentralWidget(time)
time.setDisplayFormat("hh:mm:ss")
time.setMaximumTime(QTime(1,0,0))
time.setMinimumTime(QTime(0,0,0))
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
-
setTimeRange(start,end)
: 設置時間範圍,在設定時需要配合使用QTate。範例是將時間設置在1小時內。
from PySide6.QtWidgets import QApplication , QMainWindow , QTimeEdit
from PySide6.QtCore import QTime
class Mywindow(QMainWindow):
def __init__(self):
super().__init__()
time = QTimeEdit()
self.setCentralWidget(time)
time.setDisplayFormat("hh:mm:ss")
time.setTimeRange(QTime(0,0,0),QTime(1,0,0))
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
總結
1. 日期調整元件(QDateEdit)
功能 |
方法 |
當前日期改變 |
dateChanged.connect(function) |
功能 |
方法 |
當前的日期 |
date() |
改變樣式 |
setDisplayFormat(format) |
設定日期 |
setDate(QDate) |
設定日期上限 |
setMaximumDate(QDate) |
設定日期下限 |
setMinimumDate(QDate) |
設定日期範圍 |
setDateRange(start,end) |
2. 時間調整(QTimeEdit)元件
功能 |
方法 |
當前時間改變 |
timeChanged.connect(function) |
功能 |
方法 |
當前的時間 |
time() |
改變樣式 |
setDisplayFormat(format) |
設定時間 |
setTime(Qtime) |
設定日期上限 |
setMaximumTime(QTate) |
設定日期下限 |
setMinimumTime(QTate) |
時間範圍 |
setTimeRange(start,end) |